# 给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。
#
# 先把整个数组反转，再分别反转前k个和后n-k个即可
# 例如[1,2,3,4,5], k = 3, n = 5, 先反转整个数组得[5,4,3,2,1],再反转前k个得[3,4,5,2,1],
# 再反转后n-k个得[3,4,5,1,2]即为答案
# 需要注意k必须是小于n的

# def lunzhuan(nums,k):
#     n = len(nums)
#     nums = nums[::-1]
#     if k > n:
#         k = k%n
#
#     nums[:k] = nums[:k][::-1]
#     nums[k:n] = nums[k:n][::-1]
#     return nums

def rotate(nums, k):
    n = len(nums)
    nums = nums[::-1]
    if k > n:
        k = k % n
    nums[:k] = nums[:k][::-1]
    nums[k:n] = nums[k:n][::-1]
    return nums

nums = [1,2,3,4,5,6,7]
nums1 = [-1,-100,3,99]
k = 3
k1 = 2
print(rotate(nums1,k1))